pair programming
Is AI the better programming partner? Human-Human Pair Programming vs. Human-AI pAIr Programming
Ma, Qianou, Wu, Tongshuang, Koedinger, Kenneth
The emergence of large-language models (LLMs) that excel at code generation and commercial products such as GitHub's Copilot has sparked interest in human-AI pair programming (referred to as "pAIr programming") where an AI system collaborates with a human programmer. While traditional pair programming between humans has been extensively studied, it remains uncertain whether its findings can be applied to human-AI pair programming. We compare human-human and human-AI pair programming, exploring their similarities and differences in interaction, measures, benefits, and challenges. We find that the effectiveness of both approaches is mixed in the literature (though the measures used for pAIr programming are not as comprehensive). We summarize moderating factors on the success of human-human pair programming, which provides opportunities for pAIr programming research. For example, mismatched expertise makes pair programming less productive, therefore well-designed AI programming assistants may adapt to differences in expertise levels.
What is it like to program with artificial intelligence?
Sarkar, Advait, Gordon, Andrew D., Negreanu, Carina, Poelitz, Christian, Ragavan, Sruti Srinivasa, Zorn, Ben
Large language models, such as OpenAI's codex and Deepmind's AlphaCode, can generate code to solve a variety of problems expressed in natural language. This technology has already been commercialised in at least one widely-used programming editor extension: GitHub Copilot. In this paper, we explore how programming with large language models (LLM-assisted programming) is similar to, and differs from, prior conceptualisations of programmer assistance. We draw upon publicly available experience reports of LLM-assisted programming, as well as prior usability and design studies. We find that while LLM-assisted programming shares some properties of compilation, pair programming, and programming via search and reuse, there are fundamental differences both in the technical possibilities as well as the practical experience. Thus, LLM-assisted programming ought to be viewed as a new way of programming with its own distinct properties and challenges. Finally, we draw upon observations from a user study in which non-expert end user programmers use LLM-assisted tools for solving data tasks in spreadsheets. We discuss the issues that might arise, and open research challenges, in applying large language models to end-user programming, particularly with users who have little or no programming expertise.
Pair Programming with AI
In a conversation with Kevlin Henney, we started talking about the kinds of user interfaces that might work for AI-assisted programming. This is a significant problem: neither of us were aware of any significant work on user interfaces that support collaboration. However, as software developers, many of us have been practicing effective collaboration for years. It's called pair programming, and it's not at all like the models we've seen for interaction between an AI system and a human. Most AI systems we've seen envision AI as an oracle: you give it the input, it pops out the answer.
A Comprehensive Guide to Metis Data Science Bootcamp
I have recently graduated from the Metis Data Science Bootcamp (Singapore, Batch 5), and enrolling in the Bootcamp might have been one of the best decisions that I have ever made in my life. Out of the mandatory 5 projects that I have completed, all have been published on Towards Data Science (TDS), and 2 have been featured on its social media. Most importantly, however, I managed to land myself two job offers as Data Scientist even before the Bootcamp concluded. Therefore, I wish to share with aspiring data scientists on the Bootcamp, the pros and cons of it, and how to leverage on it to derive the maximum benefits. In summary, Metis Data Science Bootcamp is an accredited 12-weeks project-based and immersive apprenticeship in full-stack data science.
TechVisor - Het vizier op de tech industrie
Remember when software was eating the world? The trendy observation these days is that artificial intelligence (AI) is eating software. Even Google CEO Sundar Pichai has talked about software that "automatically writes itself." And certainly if you consider software development to be little more than the creation of oft-repeated segments of code, then the rapid advances in AI would give software engineers pause. Traditionally, developers have written software as a series of hard-coded rules: If X happens then do Y.
Teaching Problem-Solving in Algorithms and AI
Torrey, Lisa A. (St. Lawrence University)
This paper suggests some teaching strategies for Algorithms and AI courses. These courses can have a common goal of teaching complex problem-solving techniques. Based on my experience teaching undergraduates in a small liberal-arts college, the paper offers concrete ideas for working toward this goal. These ideas are supported by relevant studies in cognitive science and education. Together, they provide a plan for structuring lessons and assignments to help student become better problem-solvers.